from zope.interface import Interface
from zope.viewlet.interfaces import IViewletManager

class IMeercatSearchView(Interface):
    """ """
    def getQueryParameters(self):
        """ Return a dictionary of search parameters for the view """
    
    def getUrlWithParams(self, remove=[], replace=True, **params):
        """ Get a url for the current search with some parameters removed and/or
        replaced.
        
        remove: a list of parameters to remove. If a given list element is a 
        tuple, then the first element in the tuple is the key and the second
        is the value to remove. This only applies for multi-valued parameters.
        """
    
    def getPaginator(self):
        """ Get a solr.SolrPaginator for the results or None if there are no results"""
    
    def hasPaginator(self):
        """ Return a boolean if the view has a paginator """
    
    def getCurrentPage(self):
        """ Return the current page """
    
    def hasCurrentPage(self):
        """ Get the current solr.SolrPage """
    
    

class ISearchableView(Interface):
    """ Marker interface for a view that allows searches """

class IBrowseableView(Interface):
    """ Marker interface for a view that allows browsing (non-searching) """

class IListView(Interface):
    """ Marker interface for a traditional list view of search results """

class ITiledView(Interface):
    """ Marker interface for a tiled resource view of search results """


"""
class IHtmlHead(IViewletManager): """
"""A viewlet manager that sits in the <head> of the rendered page
"""